<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>验证中 - 请稍候</title>
    <style>
        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            background-color: #f5f5f5;
            color: #333;
        }
        .container {
            text-align: center;
            padding: 40px;
            background: white;
            border-radius: 8px;
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
            max-width: 500px;
            width: 90%;
        }
        .spinner {
            border: 4px solid rgba(0, 0, 0, 0.1);
            width: 40px;
            height: 40px;
            border-radius: 50%;
            border-left-color: #1890ff;
            animation: spin 1s linear infinite;
            margin: 0 auto 20px;
        }
        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }
        h1 {
            margin: 0 0 15px;
            font-size: 24px;
            color: #1890ff;
        }
        p {
            margin: 10px 0;
            line-height: 1.6;
        }
        .error-message {
            color: #ff4d4f;
            margin-top: 20px;
            padding: 15px;
            background-color: #fff2f0;
            border-radius: 4px;
            text-align: left;
        }
        .countdown {
            font-weight: bold;
            color: #1890ff;
        }
        .retry-btn {
            background-color: #1890ff;
            color: white;
            border: none;
            padding: 10px 20px;
            border-radius: 4px;
            cursor: pointer;
            font-size: 14px;
            margin-top: 15px;
            transition: background-color 0.3s;
        }
        .retry-btn:hover {
            background-color: #40a9ff;
        }
        .footer {
            margin-top: 30px;
            font-size: 12px;
            color: #999;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="spinner"></div>
        <h1>正在验证身份</h1>
        <p>系统正在验证您的访问权限，请稍候...</p>
        <p id="countdownDisplay"></p>
        <div id="errorContainer" class="error-message" style="display: none;"></div>
        <button id="retryButton" class="retry-btn" style="display: none;">重新验证</button>
        <div class="footer">
            <p>如有问题，请联系系统管理员</p>
        </div>
    </div>

    <script>
        // 配置参数
        const CONFIG = {
            // 您提供的具体验证API地址
            VERIFY_API_URL: 'http://xutest.suzi-info.com:8089/api/auth/verify',
            // 验证成功后跳转的目标URL
            TARGET_REDIRECT_URL: 'https://www.suzi-info.com/yungu/',
            // 验证超时时间（毫秒）
            VERIFY_TIMEOUT: 10000,
            // 倒计时秒数
            COUNTDOWN_SECONDS: 3,
            // 开发模式标识（生产环境应设置为false）
            DEVELOPMENT_MODE: false
        };

        // 获取URL参数
        function getUrlParams() {
            const params = {};
            const urlParams = new URLSearchParams(window.location.search);
            for (const [key, value] of urlParams.entries()) {
                params[key] = value;
            }
            return params;
        }

        // 显示错误信息
        function showError(message) {
            const errorContainer = document.getElementById('errorContainer');
            errorContainer.textContent = message;
            errorContainer.style.display = 'block';
            document.getElementById('retryButton').style.display = 'block';
        }

        // 执行验证请求
        function performVerification() {
            // 重置界面
            document.getElementById('errorContainer').style.display = 'none';
            document.getElementById('retryButton').style.display = 'none';

            // 获取URL中的参数
            const urlParams = getUrlParams();
            
            // 使用URL中的参数或者默认值
            const authCode = urlParams.authCode || '7b5b75d4-2226-4fd0-ac32-1198ccbbdb69';
            const companyId = urlParams.companyId || 'yungu';

            // 构建完整的验证URL
            const verificationUrl = `${CONFIG.VERIFY_API_URL}?authCode=${encodeURIComponent(authCode)}&companyId=${encodeURIComponent(companyId)}`;

            // 在开发模式下，添加测试回退机制
            if (CONFIG.DEVELOPMENT_MODE && window.location.protocol === 'file:') {
                console.log('开发模式：模拟验证成功响应');
                // 模拟验证成功
                setTimeout(() => {
                    startCountdown();
                }, 1500);
                return;
            }

            // 创建请求对象
            const xhr = new XMLHttpRequest();
            xhr.open('GET', verificationUrl, true);
            xhr.timeout = CONFIG.VERIFY_TIMEOUT;

            // 设置请求头
            xhr.setRequestHeader('Content-Type', 'application/json');

            // 请求成功处理
            xhr.onload = function() {
                if (xhr.status === 200) {
                    try {
                        const response = JSON.parse(xhr.responseText);
                        // 假设后端返回 {"success": true} 表示验证成功
                        if (response.success) {
                            startCountdown();
                        } else {
                            showError('验证失败：' + (response.message || '未知错误'));
                        }
                    } catch (e) {
                        showError('验证响应解析错误：' + e.message);
                    }
                } else {
                    showError('验证请求失败：HTTP ' + xhr.status + ' ' + xhr.statusText);
                }
            };

            // 请求超时处理
            xhr.ontimeout = function() {
                showError('验证请求超时，请检查网络连接或稍后重试。');
            };

            // 请求错误处理
            xhr.onerror = function() {
                // 检查是否是CORS错误
                if (window.location.protocol === 'file:') {
                    showError('检测到CORS策略阻止错误。由于安全限制，无法直接从本地文件系统(file://)访问远程API。请通过Web服务器运行此页面。\n\n开发环境建议：\n1. 使用Python启动简易服务器：python -m http.server 8000\n2. 或使用Node.js：npx serve .');
                } else {
                    showError('验证请求发生网络错误，请检查网络连接。');
                }
            };

            // 发送请求
            xhr.send();
        }

        // 开始跳转倒计时
        function startCountdown() {
            let seconds = CONFIG.COUNTDOWN_SECONDS;
            const countdownDisplay = document.getElementById('countdownDisplay');
            countdownDisplay.textContent = `验证成功，${seconds}秒后自动跳转...`;

            const countdownInterval = setInterval(() => {
                seconds--;
                countdownDisplay.textContent = `验证成功，${seconds}秒后自动跳转...`;
                
                if (seconds <= 0) {
                    clearInterval(countdownInterval);
                    window.location.href = CONFIG.TARGET_REDIRECT_URL;
                }
            }, 1000);
        }

        // 页面加载完成后执行验证
        document.addEventListener('DOMContentLoaded', function() {
            performVerification();
            
            // 绑定重试按钮事件
            document.getElementById('retryButton').addEventListener('click', performVerification);
        });
    </script>
</body>
</html>